home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 21
/
Cream of the Crop 21 (Terry Blount) (October 1996).iso
/
program
/
oxcc1434.zip
/
SRC
/
OXCC.H
< prev
next >
Wrap
C/C++ Source or Header
|
1996-09-03
|
5KB
|
153 lines
/*
oxcc.h -- header file for Oxbow C compiler
Copyright (c) 1995
Norman D. Culver dba
Oxbow Software
1323 S.E. 17th Street #662
Ft. Lauderdale, FL 33316
(954) 463-4754
ndc@icanect.net
All rights reserved.
* Redistribution and use in source and binary forms are permitted
* provided that: (1) source distributions retain this entire copyright
* notice and comment, and (2) distributions including binaries display
* the following acknowledgement: ``This product includes software
* developed by Norman D. Culver dba Oxbow Software''
* in the documentation or other materials provided with the distribution
* and in all advertising materials mentioning features or use of this
* software.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifdef __cplusplus
extern "C" {
#endif
/* debug bits */
#define dA (0x00000001) /* DEBUG_STRUCT_ELEMS */
#define dB (0x00000002) /* DEBUG_ASSIGNMENT */
#define dC (0x00000004) /* DEBUG_GETVAL */
#define dD (0x00000008) /* DEBUG_ABSOLUTE_ADDR */
#define dE (0x00000010) /* DEBUG_POINTER_BUMPS */
#define dF (0x00000020) /* DEBUG_INITTED */
#define dG (0x00000040) /* DEBUG_SHADOW */
#define dH (0x00000080) /* DEBUG_CAST */
#define dI (0x00000100) /* DEBUG_CMS */
#define dJ (0x00000200) /* DEBUG_DEREF */
#define dK (0x00000400) /* DEBUG_SETJMP */
#define dL (0x00000800) /* DEBUG_CALLBACKS */
#define dM (0x00001000) /* DEBUG_GROSS */
#define dN (0x00002000) /* DEBUG_BLOB */
#define dO (0x00004000) /* DEBUG_RINITS */
#define dP (0x00008000) /* DEBUG_RUNSTACK */
#define dQ (0x00010000) /* DEBUG_STMT_TRACE */
#define dR (0x00020000) /* DEBUG_RUNCALLS */
#define dS (0x00040000) /* DEBUG_PURGE */
#define dT (0x00080000)
#define dU (0x00100000)
#define dV (0x00200000)
#define dW (0x00400000)
#define dX (0x00800000)
#define dY (0x01000000)
#define dZ (0x02000000)
/* NAME SPACES -- in the main symbol table */
#define DATASPACE 0
#define TAGSPACE 1
#define MEMBERSPACE 2
#define GOTOSPACE 3
#define USEDSPACE 4
#define LOCALSPACE 5
#define KEEPERSPACE 6
#define SUSPACE0 7
#define SUSPACE1 8
#define BSSPACE 9
#define INITSPACE 10
#define SEGSPACE 11
/* STRUCTURE FOR OPTIONS SETTING -- 16 bytes */
typedef struct _oxccopts {
char code_format;
char target_hardware;
char target_debugger;
char target_os;
char memory_model;
char obj_format;
char target_assembler;
char runcode;
char fastmode;
char quiet;
char warn_addr;
char ansi_mode;
char shroud;
char listing_wanted;
char unused[2];
char asciz; /* should be zero to imitate a string */
} OXCCOPTS;
/* callable functions */
#ifndef __OXCCFUNCSH__
#define __OXCCFUNCSH__
extern void oxcc_proc_syms(void *iv, unsigned namespace, void (*func)());
/* func(AsTP node, int symb, void *container) */
extern void oxcc_proc_ptr_info(void *iv, void (*func)());
/* func(void *addr, void *mino, void *maxo) */
extern void oxcc_proc_mallocs(void *iv, void (*func)());
/* func(void *loc, int size, DATUM *ip) */
extern int oxcc(int argc, char **argv);
extern void *oxcc_get_pg(void *iv);
extern void oxcc_debug(void *iv, int flags);
extern void oxcc_enable_trace(void *iv);
extern void oxcc_disable_trace(void *iv);
extern void *oxcc_open_instance(void);
extern void oxcc_set_options(void *iv, char *opts);
extern int oxcc_preproc_file(void *iv, void *is, void *os, void *es,
int argc, char **argv);
extern int oxcc_parse_file(void *iv, void *is, void *es, char *filename);
extern void oxcc_print_parse_errors(void *iv, void *es);
extern int oxcc_check_ast_tree(void *iv, void *es, char *filename);
extern int oxcc_init_outers(void *iv, void *es);
extern int oxcc_run_tree(void *iv, void *es, char *filename,
char *argstring, char *startfunc);
extern int oxcc_gen_code(void *iv, void *es, char *filename, void *os);
extern void oxcc_cleanup_parse(void *iv);
extern void oxcc_close_codefile(void *iv);
extern void oxcc_close_instance(void *iv);
extern void oxcc_print_ast(void *iv, void *os, int flag);
extern void *oxcc_get_ast_root(void *iv);
extern int oxcc_eval_expr(void *iv, void *buf, double *result, void *es);
extern void *__builtin_iv(void);
extern void *__builtin_pg(void);
#endif /* __OXCCFUNCSH__ */
#ifndef __OXCCCLASS__
#define __OXCCCLASS__
extern void gSetup(void *self, void *str);
extern int gPreProc(void *self, void *is, void *os, void *es, int argc, char **argv);
extern int gParse(void *self, void *is, void *es, char *filename);
extern void gPerror(void *self, void *es);
extern int gCheckTree(void *self, void *es, char *filename);
extern int gInitOuters(void *self, void *es);
extern int gRunCode(void *self, void *es, char *filename, char *args);
extern int gGenCode(void *self, void *es, void *os, char *filename);
extern void gCleanup(void *self);
extern void gCloseCode(void *self);
extern void gPrtAst(void *self, void *es, int flag);
extern void *gGetRoot(void *self);
extern int gEval(void *self, void *buf, double *result, void *es);
#endif /* __OXCCCLASS__
#ifdef __cplusplus
}
#endif